package ngat.oss.simulation;

import ngat.phase2.*;

public interface ExecutionTimingModel extends ExecutionFeasibilityModel {

    /** Returns true if the group is feasible under specified conditions.
     * @param group The group to test.
     * @param time  When we want to test it.
     * @param env   A snapshot of the observing environment at time.
     * @param hist  A snapshot summary of the group's execution history at time.
     */
    public boolean canDo(Group group, long time, EnvironmentSnapshot env, ExecutionStatistics hist);

    /** Calculate the execution time of the group.
     * @param group The group to test.
     */
    public long getExecTime(Group group);

}
